﻿using System;
using Enums;
using Vallejos.Entidades.Enums;
using Vallejos.Entidades.ModeloDeDatos;
using Vallejos.Negocio;

public partial class SolicitudesDeAnalisis_DetalleSolicitud : System.Web.UI.Page
{
    private const string PaginaDeBusqueda = "SolicitudePendientes.aspx";

    #region "Eventos De Pagina"

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            var negocio = (NegocioFacade)Session[VariablesDeSesion.NegocioFacade.ToString()];
            
            var solicitud = negocio.RecuperarEntidadEnEdicion<SolicitudDeAnalisisCrediticio>();
            if (solicitud != null)
                CargarSolicitud(solicitud);
            else
                Response.Redirect(PaginaDeBusqueda);
        }
    }

    
    protected void btnIniciarAnalisis_Click(object sender, EventArgs e)
    {
        var negocio = (NegocioFacade)Session[VariablesDeSesion.NegocioFacade.ToString()];
        negocio.IniciarAnalisisCrediticio(negocio.RecuperarEntidadEnEdicion<SolicitudDeAnalisisCrediticio>());
        Response.Redirect(PaginaDeBusqueda);
    }

    protected void btnAceptarSolicitud_Click(object sender, EventArgs e)
    {
        var negocio = (NegocioFacade)Session[VariablesDeSesion.NegocioFacade.ToString()];
        negocio.AceptarSolicitudDeAnalisisCrediticio(negocio.RecuperarEntidadEnEdicion<SolicitudDeAnalisisCrediticio>());
        Response.Redirect(PaginaDeBusqueda);
    }

    protected void btnRechazarSolicitud_Click(object sender, EventArgs e)
    {
        var negocio = (NegocioFacade)Session[VariablesDeSesion.NegocioFacade.ToString()];
        negocio.RechazarSolicitudDeAnalisisCrediticio(negocio.RecuperarEntidadEnEdicion<SolicitudDeAnalisisCrediticio>());
        Response.Redirect(PaginaDeBusqueda);
    }

    protected void btnSalir_Click(object sender, EventArgs e)
    {
        Response.Redirect(PaginaDeBusqueda);
    }

    #endregion

    #region Metodos
    private void CargarSolicitud(SolicitudDeAnalisisCrediticio solicitud)
    {
        if(solicitud.Estado.idEstado == IdEstadoAnalisis.AnalisisAutomatico)
        {
            btnAceptarSolicitud.Visible = false;
            btnRechazarSolicitud.Visible = false;
        }
        else
        {
            btnIniciarAnalisis.Visible = false;
        }
        lblEstado.Text = solicitud.Estado.Nombre;

        ctlInfoPersonal.SetearDatos(solicitud.Beneficiario.DatosPersonales);
        ctlInformacionProducto.SetearDatos(solicitud.Producto);

        lblValVehiculo.Text = String.Format("{0:c}", solicitud.Producto.Precio);
        lblGastosAdmin.Text = String.Format("{0:c}", solicitud.Producto.GastosAdministrativos);
        lblGastosGestoria.Text = String.Format("{0:c}", solicitud.Producto.GastosDeGestoria);
        lblTotal.Text = String.Format("{0:c}", solicitud.Producto.Precio + solicitud.Producto.GastosAdministrativos + solicitud.Producto.GastosDeGestoria);
        lblValCuota.Text = String.Format("{0:c}", solicitud.Monto / solicitud.CantidadDeCuotas);
        lblCuotas.Text = solicitud.CantidadDeCuotas.ToString();
        lblAdelantoEfectivo.Text = String.Format("{0:c}", (solicitud.Producto.Precio + solicitud.Producto.GastosAdministrativos + solicitud.Producto.GastosDeGestoria) - solicitud.Monto);

        
    }
    
    #endregion

    
}